fix(integrations): preserve Slack Content correction across runtime gaps - #5721
Conversation
|
Here's a visual recap of what changed: Open the full interactive recap |
There was a problem hiding this comment.
Builder reviewed your changes — looks good ✅
Review Details
Incremental Code Review Summary
The latest commits address both previously reported issues: runtime-paused A2A continuations now return their claimed attempt budget, and temporarily unavailable A2A owners are bulk-deferred outside the bounded recovery scan. I verified the updated state transitions, grouped recovery query, SQL deferral scope, campaign/A2A lease handling, explicit-disable versus runtime-unavailable semantics, and continuation route behavior with three independent review passes. The changes are consistent with the intended recovery model, and focused integration tests reported passing across the changed suites. The previously open comments were resolved before this review.
No new confirmed bugs were found. This remains a standard-risk integration/state-machine change.
🧪 Browser testing: Skipped — PR only modifies backend/config/docs/tests, no UI impact.

Problem
In a production Slack→Content correction, Content updated the existing Design Ask, but Dispatch never posted the final Slack reply. The task, campaign, and A2A continuation became terminal
failedthree seconds after a continuation self-dispatch TLS error, withDurable integration campaign was disabled for this scope. The same terminal reason occurred in the test channel on September 1. A scheduled retry cannot recover a terminal row after its continuation identity has been cleared.The durable-dispatch check currently treats two different conditions alike: an explicit rollout shutdown and a temporarily unavailable runtime prerequisite. That makes a transient host/config mismatch destroy already-started work, even if the downstream edit succeeded.
Change
This does not resurrect the already-terminal production correction; it prevents that loss on future work. The companion workspace PR #1278 emits the scheduled recovery function, but must not be treated as the full Slack fix until this Core release is consumed and a fresh human-interface create-and-correct test passes.
Proof and remaining gate
message/sendclient is available in that processor test.